package 数组练习题;

import java.util.Scanner;

/*需求：保存全班的每个组的成绩，并对成绩做统计
使用二维数组保存全班的每个组的成绩，
从键盘输入一共有几组
从键盘输入每一组分别有多少人
从键盘输入每一个同学的成绩
并对成绩做如下统计：
统计每一组的最高分、最低分
统计每一组的平均分
统计全班的最高分、最低分
统计全班的平均分
统计全班的总人数*/
public class Demo14 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一共有几组:");
        int group=scanner.nextInt();
        int[][] arr=new int[group][];
        for (int i = 0; i < group; i++){
            System.out.print("请输入第"+(i+1)+"组有多少个同学:");
            arr[i]=new int[scanner.nextInt()];
            for (int j = 0; j < arr[i].length; j++){
                System.out.print("请输入第"+(j+1)+"同学的成绩:");
                arr[i][j]=scanner.nextInt();
            }
        }
        System.out.println("每组成绩如下:");
        for (int i = 0; i < arr.length; i++){
            for (int j = 0; j < arr[i].length; j++){
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }
        int [] groupMax=new int[group];
        int [] groupMin=new int[group];
        double[] groupAvg=new double[group];
        int max=-1;
        int min=101;
        double sum=0;
        int count=0;
        for (int i = 0; i < group; i++){
            groupMax[i]=-1;
            groupMin[i]=101;
        }
        for (int i = 0; i < arr.length; i++) {
            double groupSum = 0;
            for (int j = 0; j < arr[i].length; j++) {
                //每组最高分
                if (arr[i][j] > groupMax[i]) {
                    groupMax[i] = arr[i][j];
                }
                //每组最低分
                if (arr[i][j] < groupMin[i]) {
                    groupMin[i] = arr[i][j];
                }
                //全班最高分
                if (arr[i][j] > max) {
                    max = arr[i][j];
                }
                //全班最低分
                if (arr[i][j] < min) {
                    min = arr[i][j];
                }
                //全班总分
                sum += arr[i][j];
                //每组总分
                groupSum += arr[i][j];
                count++;
            }
            //每组平均分
            groupAvg[i] = groupSum / arr[i].length;
        }
           //全班平均分
            double avg=sum/count;
            System.out.println("全班最高分为:"+max);
            System.out.println("全班最低分为:"+min);
            System.out.println("全班总分为:"+sum);
            System.out.println("全班平均分为:"+avg);
            for (int i = 0; i < arr.length; i++){
                System.out.println("第"+(i+1)+"组的高分为:"+groupMax[i]);
                System.out.println("第"+(i+1)+"组的低分为:"+groupMin[i]);
                System.out.println("第"+(i+1)+"组的平均分为:"+groupAvg[i]);}
    }
}
